home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
libs
/
mtoollib.lha
/
MToolLibrary
/
Tool.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-12-22
|
10KB
|
288 lines
#include <exec/types.h>
#include <intuition/intuition.h>
#include <proto/exec.h>
#include <proto/dos.h>
#include <proto/mathieeedoubbas.h>
#include <proto/mathieeedoubtrans.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <math.h>
#define Sgn(a) IEEEDPFlt(IEEEDPTst(a))
#define sgn(a) IEEEDPFlt(IEEEDPTst(a))
#define ASinh(a) Log(arg+Sqr(arg*arg+1))
#define E 2.718281828
#define PPI 3.14159265358979323846
#define Mul(a,b) IEEEDPMul(a,b)
#define Add(a,b) IEEEDPAdd(a,b)
#define Sub(a,b) IEEEDPSub(a,b)
#define Div(a,b) IEEEDPDiv(a,b)
#define Flt(a) IEEEDPFlt(a)
#define Fix(a) IEEEDPFix(a)
#define Cmp(a,b) IEEEDPCmp(a,b)
#define Abs(a) IEEEDPAbs(a)
#define Neg(a) IEEEDPNeg(a)
#define Pow(a,b) IEEEDPPow(a,b)
#define Tst(a) IEEEDPTst(a)
#define Log10(a) IEEEDPLog10(a)
#define Floor(a) IEEEDPFloor(a)
#define ACos(a) IEEEDPAcos(a)
#define ASin(a) IEEEDPAsin(a)
#define ATan(a) IEEEDPAtan(a)
#define Sin(a) IEEEDPSin(a)
#define Cos(a) IEEEDPCos(a)
#define Tan(a) IEEEDPTan(a)
#define Log(a) IEEEDPLog(a)
#define Sqr(a) IEEEDPSqrt(a)
struct info
{
USHORT code;
struct IntuiMessage *Nachricht;
ULONG NachrichtenArt;
APTR IAddress;
SHORT MouseX,MouseY;
};
struct MToolBase
{
struct Library Node;
LONG SegList;
struct Library *SysBase;
struct GfxBase *GfxBase;
struct IntuitionBase *IntuitionBase;
struct Library *MathIeeeDoubBasBase;
struct Library *MathIeeeDoubTransBase;
};
struct Block
{
LONG Links,Rechts;
LONG RechenArt,Valid;
LONG Konstante;
LONG Fehler;
char *String;
DOUBLE Wert;
struct Block *Left,*Right;
};
struct Konstanten
{
DOUBLE k1,k2,k3,k4;
};
/* Fehlercodes */
#define DIVBYZERO 1 /* Es wurde durch 0 geteilt */
#define LOGNEG 2 /* Es wurde von Zahl <= 0 der Log gebildet */
#define SQRTNEG 4 /* Es wurde von Zahl <0 die Wurzel gebildet */
#define ATRIG 8 /* Es wurde von Zahl >1 oder <-1 asin/acos gebildet */
#define UNPAKLAM 16 /* Unpaarige Klammern */
#define TEST 32
#define NOFUNC 64 /* Keine Funktion eingegeben */
#define NO_KONST 128 /* Keine solche Konstante */
#define NO_MEM 256 /* Kein Speicher für weiteren Block */
#define POWERROR 512 /* Negative Zahl hoch Bruch wurde versucht */
#define NO_FUNC 1024 /* Keine Funktion gefunden */
/* Rechenarten */
#define ADDI 1
#define SUBT 2
#define MULT 3
#define DIVI 4
#define POWE 5
#define SINU 6
#define COSI 7
#define TANG 8
#define ASIN 9
#define ACOS 10
#define ATAN 11
#define LOG1 12
#define LNAT 13
#define ABSO 14
#define SIGU 15
#define SQRT 16
#define FLOO 17
#define X 18
#define MKON 19 /* Math. Konstante */
#define UKON 20 /* User Konstante */
#define ZIFF 21 /* Ziffern */
#define KLAM 22
VOID Print(struct RastPort *RP,
char *text,
LONG col,
LONG xpos,
LONG ypos);
ULONG EventAbfrage(struct Window *Window,
struct info *MsgInfo);
LONG request(char *JaPointer,
char *NeinPointer,
char *BodyPointer);
VOID Fak(DOUBLE *Ziel, LONG i);
VOID NuK(DOUBLE *Ziel,LONG n,LONG k);
VOID Free_Block(struct Block *First);
VOID Free_Konst(APTR Zeiger);
APTR Init_Konst(VOID);
LONG Set_Konst_P(APTR Zeiger,LONG Nummer,DOUBLE *Wert_P);
struct Block *Init_Mem(char *string);
LONG Init_Block(struct Block *Zeiger);
LONG check(LONG z1,LONG z2,
LONG l, LONG r,
char *string);
LONG checkback(LONG z1,LONG z2,
LONG l, LONG r,
char *string);
VOID copy(LONG i, LONG Anzahl,
char *Ziel,char *Source);
LONG PreCalc(struct Block *Zeiger,APTR Konst);
VOID GetKonst_P(DOUBLE *Ziel,APTR Konst,LONG Nummer);
DOUBLE GetKonst(APTR Konst,LONG Nummer);
LONG Calc_P(DOUBLE *Ziel,
struct Block *Zeiger,
DOUBLE *x);
LONG AnzahlKlammern(char *string);
VOID berechnen(DOUBLE *Ziel,
UBYTE *string,
DOUBLE *var,
struct Konstanten *kon,
LONG *Fehler);
VOID left(char *Ziel,
char *string,
LONG Anzahl);
VOID right(char *Ziel,
char *string,
LONG Anzahl);
VOID mid(char *Ziel,
char *string,
LONG Anfang,
LONG Anzahl);
VOID UmwStoF(DOUBLE *Ziel,
char *string);
VOID UmwFtoS(char *Ziel,
DOUBLE *Zahl1,
LONG Nachkomma);
LONG NewRequest(struct Window *AktWindow,
char *JaPointer,
char *NeinPointer,
char *BodyPointer);
VOID Box(struct RastPort *RastPort, /* Der RastPort */
LONG xs, /* Start: X */
LONG ys, /* Start: Y */
LONG xe, /* Ende : X */
LONG ye); /* Ende : Y */
VOID Center(struct Window *Window, /* Das Fenster */
char *string, /* Der Text */
LONG Color, /* Die Farbe */
LONG y_Pos); /* Die Y-Pos. */
VOID Gadget_On(struct Gadget *Gadget, /* Das Gadget */
struct Window *Window); /* Das Fenster */
VOID Gadget_Off(struct Gadget *Gadget, /* Das Gadget */
struct Window *Window); /* Das Fenster */
LONG GetPropPosH(struct Gadget *Gadget, /* Das Gadget */
LONG MaxPos); /* Max. Pos. */
LONG GetPropPosV(struct Gadget *Gadget, /* Das Gadget */
LONG MaxPos); /* Max. Pos. */
VOID SetPropPosH(struct Gadget *Gadget, /* Das Gadget */
struct Window *Window,
LONG MaxPos, /* Die MaxPos */
LONG Schrittweite, /* Schrittweite */
LONG NewPos); /* Neue Posit. */
VOID SetPropPosV(struct Gadget *Gadget, /* Das Gadget */
struct Window *Window,
LONG MaxPos, /* Die MaxPos */
LONG Schrittweite, /* Schrittweite */
LONG NewPos); /* Neue Posit. */
LONG PrepareTmpRas(struct RastPort *RP); /* Der RastPort */
VOID ClearTmpRas(struct RastPort *RP); /* Der RastPort */
LONG PrepareArea(struct RastPort *RP,
LONG MaxPoints);
VOID ClearArea(struct RastPort *RP);
struct Menu *LastMenu(struct Menu *menu);
struct MenuItem *LastItem(struct Menu *menu);
struct MenuItem *LastSub(struct Menu *menu);
struct Menu *AddMenu(struct Menu *menu,
char *Titel,
USHORT Flags);
struct Item *AddItem(struct Menu *menu,
char *Titel,
USHORT Flags,
char HotKey);
struct Item *AddSub(struct Menu *menu,
char *Titel,
USHORT Flags,
char HotKey);
struct MenuItem *GetItem(struct Menu *menu,
char *Titel,
USHORT Flags,
char HotKey);
VOID ClearMenu(struct Menu *menu);
struct MenuItem *FreeItem(struct MenuItem *item);
struct Menu *FreeMenu(struct Menu *menu);
VOID NewSetMenuStrip(struct Window *Window,
struct Menu *menu);
#pragma libcall MToolBase left 1e 9803
#pragma libcall MToolBase right 24 9803
#pragma libcall MToolBase mid 2a 109804
#pragma libcall MToolBase UmwFtoS 30 9803
#pragma libcall MToolBase copy 36 321004
#pragma libcall MToolBase check 3c 8321005
#pragma libcall MToolBase checkback 42 8321005
#pragma libcall MToolBase AnzahlKlammern 48 801
#pragma libcall MToolBase request 4e 21003
#pragma libcall MToolBase NewRequest 54 210804
#pragma libcall MToolBase EventAbfrage 5a 9802
#pragma libcall MToolBase Print 60 2108905
#pragma libcall MToolBase Box 66 3210905
#pragma libcall MToolBase Center 6c 108904
#pragma libcall MToolBase Gadget_On 72 9802
#pragma libcall MToolBase Gadget_Off 78 9802
#pragma libcall MToolBase GetPropPosH 7e 802
#pragma libcall MToolBase GetPropPosV 84 802
#pragma libcall MToolBase SetPropPosH 8a 2109805
#pragma libcall MToolBase SetPropPosV 90 2109805
#pragma libcall MToolBase PrepareTmpRas 96 901
#pragma libcall MToolBase ClearTmpRas 9c 901
#pragma libcall MToolBase PrepareArea a2 902
#pragma libcall MToolBase ClearArea a8 901
#pragma libcall MToolBase UmwStoF ae 9802
#pragma libcall MToolBase Fak b4 802
#pragma libcall MToolBase NuK ba 10803
#pragma libcall MToolBase berechnen c0 3210805
#pragma libcall MToolBase Init_Konst c6 0
#pragma libcall MToolBase Init_Mem cc 801
#pragma libcall MToolBase Init_Block d2 801
#pragma libcall MToolBase Set_Konst_P d8 10803
#pragma libcall MToolBase GetKonst_P de 19803
#pragma libcall MToolBase PreCalc e4 1002
#pragma libcall MToolBase Calc_P ea a9803
#pragma libcall MToolBase Free_Konst f0 801
#pragma libcall MToolBase Free_Block f6 801
#pragma libcall MToolBase CreatePort fc 802
#pragma libcall MToolBase DeletePort 102 801
#pragma libcall MToolBase CreateExtIO 108 802
#pragma libcall MToolBase DeleteExtIO 10e 802
#pragma libcall MToolBase CreateStdIO 114 801
#pragma libcall MToolBase DeleteStdIO 11a 801
#pragma libcall MToolBase LastMenu 120 801
#pragma libcall MToolBase LastItem 126 801
#pragma libcall MToolBase LastSub 12c 801
#pragma libcall MToolBase AddMenu 132 9803
#pragma libcall MToolBase AddItem 138 109804
#pragma libcall MToolBase AddSub 13e 109804
#pragma libcall MToolBase GetItem 144 109804
#pragma libcall MToolBase ClearMenu 14a 801
#pragma libcall MToolBase FreeItem 150 801
#pragma libcall MToolBase FreeMenu 156 801
#pragma libcall MToolBase NewSetMenuStrip 15c 8902